package com.maxcion.scalelayoutmanager.form

import com.maxcion.scalelayoutmanager.adapter.BaseViewHolder
import com.maxcion.scalelayoutmanager.adapter.IMultiItem


const val TYPE_VERTICAL_TITLE = 0
const val TYPE_HORIZONTAL_TITLE = 1
const val TYPE_CONTENT = 2
const val TYPE_TITLE_EMPTY = 3

interface IVerticalTitleItem : IMultiItem {
    fun getContent(): String
    override fun getItemType() = TYPE_VERTICAL_TITLE
}

interface IHorizontalTitleItem : IMultiItem {
    fun getContent(): String
    override fun getItemType() = TYPE_HORIZONTAL_TITLE
}


interface ILineItem : IMultiItem {
    override fun getItemType() = TYPE_CONTENT
}

interface IContentItem : IMultiItem {

}

interface ItemViewConvert<T> {
   public fun convertVerticalTitle(bean: IVerticalTitleItem, holder: BaseViewHolder)
   public fun convertHorizontalTitle(bean: IHorizontalTitleItem, holder: BaseViewHolder)
   public fun convertContent(bean: T, holder: BaseViewHolder, realColumnIndex : Int)
}